package br.com.speedprevweb.bean;

import br.com.speedprevweb.dao.TipoIndeferimentoDao;
import br.com.speedprevweb.dao.impl.TipoIndeferimentoDaoImpl;
import br.com.speedprevweb.model.TipoIndeferimento;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "tipoIndeferimentoBean")
@SessionScoped
public class TipoIndeferimentoBean implements Serializable {

  private TipoIndeferimento tipoIndeferimento = new TipoIndeferimento();
  private List<TipoIndeferimento> listaTipoIndeferimento = new ArrayList();

  public TipoIndeferimentoBean() {
    listaTipoIndeferimento = new TipoIndeferimentoDaoImpl().listarTodos();
    tipoIndeferimento = new TipoIndeferimento();
  }

  public TipoIndeferimento getTipoIndeferimento() {
    return tipoIndeferimento;
  }

  public void setTipoIndeferimento(TipoIndeferimento tipoIndeferimento) {
    this.tipoIndeferimento = tipoIndeferimento;
  }

  public List<TipoIndeferimento> getListaTipoIndeferimento() {
    return listaTipoIndeferimento;
  }

  public void setListaTipoIndeferimento(List<TipoIndeferimento> listaTipoIndeferimento) {
    this.listaTipoIndeferimento = listaTipoIndeferimento;
  }

  public String descricaoTipoIndeferimento() {
    return this.tipoIndeferimento.getDsTipoIndeferimento();
  }

  public String incluirTipoIndeferimento() {
    tipoIndeferimento = new TipoIndeferimento();
    return "TipoIndeferimentoDetalhe";
  }

  public String preparaAlterarTipoIndeferimento() {
    return "TipoIndeferimentoDetalhe";
  }

  public String excluirTipoIndeferimento() {
    TipoIndeferimentoDao tpTipoIndeferimentoDao = new TipoIndeferimentoDaoImpl();
    tpTipoIndeferimentoDao.excluir(tipoIndeferimento);
    listaTipoIndeferimento = new TipoIndeferimentoDaoImpl().listarTodos();
    tipoIndeferimento = new TipoIndeferimento();
    return "TipoIndeferimento";
  }

  public String salvar() {
    if (tipoIndeferimento.getIdTipoIndeferimento() == 0) {
      incluir();
    } else {
      alterar();
    }
    return "TipoIndeferimento";
  }

  public void incluir() {
    TipoIndeferimentoDao tpIndeferimentoDaoDao = new TipoIndeferimentoDaoImpl();
    tpIndeferimentoDaoDao.salvar(this.tipoIndeferimento);
    listaTipoIndeferimento = new TipoIndeferimentoDaoImpl().listarTodos();
    tipoIndeferimento = new TipoIndeferimento();
  }

  public void alterar() {
    TipoIndeferimentoDao tpTipoIndeferimentoDao = new TipoIndeferimentoDaoImpl();
    tpTipoIndeferimentoDao.alterar(tipoIndeferimento);
  }

  public String cancelar() {
    return "TipoIndeferimento";
  }

  private void atualizarDataTable() {
    listaTipoIndeferimento = new TipoIndeferimentoDaoImpl().listarTodos();
    tipoIndeferimento = new TipoIndeferimento();
  }

  public int totalRegistros() {
    return listaTipoIndeferimento.size();
  }

}
